/**
 * 功能： 使视图与相关事件相分离 类似于action 用来传递数据和控制视图 quicktips 没有完成
 * 
 * handler 事件需要重新改变量
 */
Ext.define('Risk.controller.rb.RbController', {
	extend : 'Ext.app.Controller',
	stores : ['rb.LfStore'],
	models : [

	],

	/**
	 * 视图在congtroller中进行注册 将控制权转交给 this Controller
	 */
	// 管理的视图
	views : ['rb.Pb', 'rb.Hz', 'rb.Lf', 'rb.Lf2', 'rb.Rf', 'rb.Rp',
			'rb.RbResult'],
	// 类创建好后要做的初始化工作
	init : function() {
		this.control({
					// 类似于JQuery中的选择器 fieldLabel
					'pbfieldSet > radiogroup' : {
						change : this.changeHandler,
						render : this.initPb
					},
					'hzfieldSet > radiogroup' : {
						change : this.hzChangeHandler,
						render : this.initHz
					},
					'lffieldSet > combo' : {
						change : this.lfComboChangeHandler
/*
 * , render: this.initHz
 */
					},
					'rffieldSet > radiogroup' : {
						change : this.rfChangeHandler,
						render : this.initRf
					},
					'rpfieldSet > radiogroup' : {
						change : this.rpChangeHandler,
						render : this.initRp
					},
					'lffieldSet > checkbox' : {
						change : this.lfCheckboxChange
					},
					'lffieldSet>numberfield' : {
						change : this.lfNumberFieldChange
					},
					'lffieldSet2 > checkbox' : {
						change : this.lfCheckboxChange2
					},
                    'lffieldSet2>numberfield' : {
                        change : this.lfNumberFieldChange2
                    },
//					'rbResult  button[action=calculate] ' : {
//						click : this.handlerCalculateEvent
////					},
//					'rbResult  button[action=save] ' : {
//						click : this.handlerSaveEvnet
//					},
					'rbpanel':
					{
						activate: this.getData
					}

				});
	},
	initRp : function() {
		var tooltips = [];
		for (var i = 1; i <= 3; i++) {
			tooltips.push({
				target : 'RP_TIP' + i,
				title : '防火措施类型' + i,
				html : '计算由防火措决定的减少物理损害导致人身伤亡的损失因子【rp】：'
						+ '<br>如果采用多项措施则取最小值；<br>'
						+ '有爆炸危险 rp = 1;<br>采取了过电压防护和其他损害的防护并且消防员能够在10min之内赶到rp=0.2',
				trackMouse : true
			});
		}
		Ext.each(tooltips, function(config) {
					Ext.create('Ext.tip.ToolTip', config);
				});
	},
	initRf : function(obj) {
		// 提示消息
		var tooltips = [];
		for (var i = 1; i <= 5; i++) {
			tooltips.push({
						target : 'RF_TIP' + i,
						title : '火灾危险程度' + i,
						html : '用于计算由火灾危险程度决定的减少物理损害导致人身伤亡损失因子【rf】。',
						trackMouse : true
					});
		}
		Ext.each(tooltips, function(config) {
					Ext.create('Ext.tip.ToolTip', config);
				});
	},
	initHz : function(obj) {
		// 提示消息
		var tooltips = [];
		for (var i = 1; i <= 7; i++) {
			tooltips.push({
						target : 'HZ_TIP' + i,
						title : '特殊危险种类' + i,
						html : '用于计算特殊危险时，物理损害导致人身伤害损失率的增加因子【hz】。',
						trackMouse : true
					});
		}
		Ext.each(tooltips, function(config) {
					Ext.create('Ext.tip.ToolTip', config);
				});

		Ext.QuickTips.init();

	},
	initPb : function(obj) {
		// 提示消息
		var tooltips = [];
		for (var i = 1; i <= 7; i++) {
			tooltips.push({
						target : 'PB_TIP' + i,
						title : 'LPS防雷级别【LPL】' + i,
						html : '用于计算雷击建筑物导致的物理损害概率【PB】。',
						trackMouse : true
					});
		}
		Ext.each(tooltips, function(config) {
					Ext.create('Ext.tip.ToolTip', config);
				});

		Ext.QuickTips.init();

	},
	changeHandler : function(obj, newValue, oldValue, eOpts)// 处理radio 事件
	{
//		console.log('this is in Ra controller!');
		var temp = 0;
		for (o in newValue) {
			temp = newValue[o];
		}

		obj.up('pbfieldSet').down('#pb').setValue(temp);
	},
	hzChangeHandler : function(obj, newValue, oldValue, eOpts)// 处理radio 事件
	{
		var temp = 0;
		for (o in newValue) {
			temp = newValue[o];
		}

		obj.up('hzfieldSet').down('#hz').setValue(temp);
	},
	lfComboChangeHandler : function(obj) {
		var temp = obj.value;
		obj.up('lffieldSet').down('#lf').setValue(temp);
	},
	rfChangeHandler : function(obj, newValue, oldValue, eOpts) {
		var temp = 0;
		for (o in newValue) {
			temp = newValue[o];
		}
		obj.up('rffieldSet').down('#rf').setValue(temp);
	},
	rpChangeHandler : function(obj, newValue, oldValue, eOpts) {
		var temp = 0;
		for (o in newValue) {
			temp = newValue[o];
		}
		obj.up('rpfieldSet').down('#rp').setValue(temp);
	},
	lfCheckboxChange : function(obj, value) {
		var temp = obj.up('maintab').down('rapanel').down('ltfieldSet').down('#lt').value;
		obj.up('lffieldSet').down('#lfcombo').setDisabled(value);
		if(value)obj.up('lffieldSet').down('#lf').setValue(temp);
	},
	lfCheckboxChange2 : function(obj, value) {
		obj.up('lffieldSet2').down('#lf').reset();
		obj.up('lffieldSet2').down('#numberfield1').setDisabled(!value);
		obj.up('lffieldSet2').down('#numberfield2').setDisabled(!value);
        if(!value){
            obj.up('lffieldSet2').down('#lf').setValue(10e-2);
        }else{
            var c = obj.up('lffieldSet2').down('#numberfield1').getValue();
	        var ct = obj.up('lffieldSet2').down('#numberfield2').getValue();
	        var temp = c/ct;
	        if (!isNaN(temp))
	            obj.up('lffieldSet2').down('#lf').setValue(temp);
        }
	},
	lfNumberFieldChange : function(obj, value) {
		var np = obj.up('lffieldSet').down('#numberfield1').getValue();
		var nt = obj.up('lffieldSet').down('#numberfield2').getValue();
		var t = obj.up('lffieldSet').down('#numberfield3').getValue();
		var temp = (np / nt) * (t / 8760);
		if (!isNaN(temp))
			obj.up('lffieldSet').down('#lf').setValue(temp);
	},
    lfNumberFieldChange2 : function(obj, value) {
        var c = obj.up('lffieldSet2').down('#numberfield1').getValue();
        var ct = obj.up('lffieldSet2').down('#numberfield2').getValue();
        var temp = c/ct;
        if (!isNaN(temp))
            obj.up('lffieldSet2').down('#lf').setValue(temp);
    },
////	handlerCalculateEvent : function(obj) {
////        var nd = 1;
////        var lt = 1;
////        var pb= obj.up('form').down('#pb').getValue();
////		var rp = obj.up('form').down('#rp').getValue();
////		var hz = obj.up('form').down('#hz').getValue();
////		var rf = obj.up('form').down('#rf').getValue();
////		var lf = obj.up('form').down('lffieldSet').down('#lf').getValue();
////        var lf2 = obj.up('form').down('lffieldSet2').down('#lf').getValue();
//////        alert("pb"+pb+'\nrp'+rp+'\nhz'+hz+'\nrf'+rf+'\nlf'+lf+'\nlf2');
////		var r1 = rp * hz * rf * lt*pb;
////		var r2 = rp * rf * lf*nd*pb;
////		var r3 = rp * rf * lf2*nd*pb;
////        obj.up('rbResult').down('#r1').setValue(r1);
////        obj.up('rbResult').down('#r2').setValue(r2);
////        obj.up('rbResult').down('#r3').setValue(r3);
////        
////	},
//	handlerSaveEvnet : function() {
//
//	},
	 getData:function(obj)
		{
			var record = obj.up("maintab").ownerCt.ownerCt.items.get(0).getSelectionModel().selected.items[0];
			if(!obj.isLoad){
				obj.isLoad = true;
				Ext.Ajax.request({
				    url:'rb/setRb.do' ,
				    params:{projid:record.data.id,_doc:new Date().getMilliseconds()},
				    success:function(response){
				    //成功操作form 注入数据
				    	
				    	var result = Ext.JSON.decode(response.responseText).success;
					    if(result)
					    {
					    	var o = Ext.JSON.decode(response.responseText).others;
					    	obj.getForm().setValues(o);
					    }else
					    {
					    	//obj.getForm().reset();
					    }
//				    	/alert(isNaN(o.ai));
				    },
				    failure:function(response){
				     // 失败操作from 
				    	//obj.getForm().reset();
				    }
				});
			}
			
		}

});